package com.cmwa.scbp.sys.permission.dataRole.service;

import java.util.List;

import com.cmwa.scbp.base.mvc.entity.Page;
import com.cmwa.scbp.base.mvc.entity.SearchParam;
import com.cmwa.scbp.base.exception.ValidateFailedException;
import com.cmwa.scbp.sys.permission.dataAuthority.entity.RoleVo;


public interface RoleService {

	/**
	 * 角色管理列表
	 * @author ex-weicb
	 * @createDate 2016年4月26日 下午6:35:36
	 * @param sp
	 * @return
	 */
	public Page<RoleVo> roleListPage(SearchParam sp);

	
	/**
	 * 根据角色id查找角色数据
	 * @author ex-weicb
	 * @createDate 2016年4月27日 下午2:01:52
	 * @param roleId
	 * @return
	 */
	public RoleVo queryByRoleId(String roleId);

	/**
	 * 得到角色共享信息
	 * @author ex-weicb
	 * @createDate 2016年4月27日 下午2:25:57
	 * @param roleId
	 * @return
	 */
	public List<RoleVo> queryShareInfoById(String roleId);


	/**
	 * 查找角色数量
	 * @author ex-weicb
	 * @createDate 2016年4月28日 下午1:51:41
	 * @param role
	 * @return
	 */
	public int queryRoleCount(RoleVo role);


	/**
	 * 新增角色
	 * @author ex-weicb
	 * @createDate 2016年4月28日 下午2:07:13
	 * @param role
	 * @return
	 * @throws ValidateFailedException 
	 */
	public String saveRole(RoleVo role) throws ValidateFailedException;

	/**
	 * 查找角色
	 * @author ex-weicb
	 * @createDate 2016年4月28日 下午4:56:33
	 * @param role
	 * @return
	 */
	public List<RoleVo> queryRole(RoleVo role);

	/**
	 * 根据角色类型查找角色列表
	 * @author ex-weicb
	 * @createDate 2016年5月3日 上午9:12:51
	 * @param string
	 * @return
	 */
	public List<RoleVo> queryByType(String type);
	
	/**
	 * 修改角色
	 * @author ex-weicb
	 * @createDate 2016年4月29日 上午9:30:40
	 * @param role
	 * @return
	 * @throws ValidateFailedException 
	 */
	public String updateRole(RoleVo role) throws ValidateFailedException;
}
